Conversation
This EPA_FDDA commit will add 3-D grid analysis nudging FDDA to MPAS-A as an option to assist in keeping retrospective simulations dynamically on track to improve evaluation against observations. This FDDA development for MPAS-A (Bullock et al., 2018) nudges temperature, humidity, and wind toward target values and is based on the comparable FDDA feature available in WRF, including MPAS-A versions of many of the WRF FDDA options. Enabling analysis nudging FDDA in MPAS-A maintains high fidelity to the reference fields while still conserving mass. An extra step (additional details are provided in the associated pull request) using init_atmosphere_model is necessary to generate the FDDA file required for input to a subsequent MPAS-A simulation with FDDA enabled. New file: src/core_atmosphere/physics/mpas_atmphys_fdda.F Modified files: Makefile src/core_atmosphere/Registry.xml src/core_atmosphere/physics/Makefile src/core_atmosphere/physics/mpas_atmphys_control.F src/core_atmosphere/physics/mpas_atmphys_driver.F src/core_atmosphere/physics/mpas_atmphys_manager.F src/core_atmosphere/physics/mpas_atmphys_todynamics.F src/core_init_atmosphere/Registry.xml These EPA_FDDA code changes to MPAS-A are based on the 22 August 2022 "develop" branch of MPAS v7.3. Reference: Bullock Jr., O. R., H. Foroutan, R. C. Gilliam, and J. A. Herwehe, 2018: Adding four-dimensional data assimilation by analysis nudging to the Model for Prediction Across Scales Atmosphere (version 4.0). Geosci. Model Dev., 11, 28972922. https://doi.org/10.5194/gmd-11-2897-2018
…iles using provided intermediate files. Tested for GFS intermediate files and FDDA input files generated at the same file interval as fg_interval.
…lar to mpas_atm_iau.F The FDDA scheme originally in physics/mpas_atmphys_fdda.F is now dynamics/mpas_atm_fdda.F, with added variable transformation and passing of FDDA tendencies to the dynamics through "tend_ru_physics, tend_rtheta_physics". Other changes include moving the FDDA configuration options in the namelist out of the physics namelist record and into its own fdda namelist record.
…cs variable structure to its own tend_fdda variable structure in the Registry.
…cs variable structure to its own tend_fdda variable structure in the Registry. *Modified the call to apply_fdda to include tend_fdda
… two time levels. FDDA input fields are read in and shifted in time levels, similar to how LBC fields are done.
1. Remove changes to Makefile from original PR 2. Add new fdda variables and remove the old in registry 3. Add missed argument xtime_s to calls to atm_srk3 and atm_timestep
…structZ_fdda from the fdda_state variable structure in core_init_atmosphere, so they are not output by default in the FDDA target files. * Setting config_init_case = 11 in core_init_atmosphere to be the analysis nudging case
…ure. To minimize the output fields needed in the target analysis nudging files written out, modified the default output variables for the fdda stream instead.
…gurations from 'fdda' to 'nudging' in atmosphere_model.
| end function atm_get_sounding_2 | ||
|
|
||
| !----------- | ||
| <<<<<<< HEAD |
There was a problem hiding this comment.
I think you'll need to remove the git conflict markers here and lines 7803-7804.
| public:: physics_get_tend, pre_physics_get_tend, post_physics_get_tend, tend_toEdges | ||
| ======= | ||
| public:: physics_get_tend, pre_physics_get_tend, post_physics_get_tend | ||
| >>>>>>> 91c5eac175eebeaf4206bacd5cb50c39dff3c152 |
There was a problem hiding this comment.
This looks like an unresolved git merge conflict.
| <var name="v_fdda" type="real" dimensions="nVertLevels nCells Time" units="m s^{-1}" | ||
| description="meridional wind component for FDDA grid nudging"/> | ||
|
|
||
| </var_struct> |
There was a problem hiding this comment.
So that these fields aren't allocated for simulations that don't make use of FDDA, we could define a new package and attach it to these fields.
| config_radt_lw_scheme .ne. 'off' .or. & | ||
| config_radt_sw_scheme .ne. 'off' .or. & | ||
| config_sfclayer_scheme .ne. 'off') then | ||
| config_sfclayer_scheme .ne. 'off') then |
There was a problem hiding this comment.
It doesn't look like any of the changes in mpas_atmphys_driver.F are related to FDDA, so perhaps we could revert them.
|
|
||
| <stream name="fdda" | ||
| type="input" | ||
| filename_template="x1.40962.fdda.nc" |
There was a problem hiding this comment.
Just a small usability suggestion: we could set the default filename_template here to match the default filename_template used for the "fdda" stream in the init_atmosphere core (i.e., fdda.$Y-$M-$D_$h.$m.$s.nc).
|
Hi Jerry @jherwehe -- @mgduda and I wanted to reach out to you but had trouble reaching you via perhaps an old email address. We wanted to know, since this PR here is heavily based on your previous work PR #995, would you have any additional input/comments/concerns on these modifications (which pertain mostly to how the target files are generated and also where the nudging code resides within MPAS)? If there's an easier way to reach out to you so we can touch base, that would be helpful! Thanks so much! |
This PR is created to merge code changes related to adding an analysis grid nudging capability in MPAS-A. The core of the code changes was presented in Bullock et al. (2018) and PR #995. In this PR, several updates and revisions are made to PR #995 and are as follow.
(1) Added capabilities in init_atmosphere_model to generate the target "FDDA" analysis files that are required for input to atmosphere_model when the analysis nudging option is turned on, instead of using an offline script as presented in PR #995. See below for instructions on generating target files using init_atmosphere.
(2) Calls to the computation of the nudging tendencies are implemented similar to those for other additional tendency terms, such as those from Incremental Analysis Update (IAU), instead of adding the nudging tendencies inside the physics as implemented in PR #995.
(3) Renamed new variables in PR #995 (XX_fdda_new, XX_fdda_old) to a more concise two-time-level variables (XX_fdda). Also renamed the namelist record in namelist.atmosphere from &fdda to &nudging.
========= Instructions for generating and using files with nudging target fields =========
To generate the nudging target files using init_atmosphere (e.g., from six-hourly analyses):
a. Create your
init.ncfile as usual. This step needs to be done prior to generating the nudging files becauseinit.nccontains the vertical and horizontal mesh information needed for interpolating the analyses onto the MPAS mesh.b. In
namelist.init_atmosphere, setconfig_init_case = 11, and setconfig_start_timeandconfig_stop_timeto reflect the beginning and end of your simulation period. The corresponding preprocessed six-hourly intermediate files should reside in the run directory, or as defined byconfig_met_prefix(similar to when generating lateral boundary condition files for a regional simulation).c. In
streams.init_atmosphere, add the immutable output stream for the target files:d. When running MPAS-atmosphere, use the same
filename_templatewhen defining the immutable input stream instreams.atmosphere:e. When running MPAS-atmosphere, add the following example namelist record to use nudging option:
Namelist option
config_fdda_schemeset to'analysis'('off') turns on (off) the nudging option.=====================================================================
Reference:
Bullock Jr., O. R., H. Foroutan, R. C. Gilliam, and J. A. Herwehe, 2018:
Adding four-dimensional data assimilation by analysis nudging to the
Model for Prediction Across Scales – Atmosphere (version 4.0). Geosci.
Model Dev., 11, 2897–2922. https://doi.org/10.5194/gmd-11-2897-2018
Related PR: #995